import axios from "axios";
import router from "../../router";

let http = axios.create({
  baseURL: "/api"
});

// axios 拦截器
http.interceptors.request.use(req => {
  // console.log(req, "请求拦截");
  // 从存储中取出来 token
  let token = sessionStorage.getItem("loginInfo")
    ? JSON.parse(sessionStorage.getItem("loginInfo")).token
    : "";
  // 需求：在请求头中添加 token 令牌
  req.headers.authorization = token;
  // 设置请求拦截之后，要返回这个配置
  return req;
});

// 响应拦截   一般用于全局拦截错误
http.interceptors.response.use(res => {
  if (res.data.code === 500) {
    alert(res.data.msg);
    router.push("/login");
  } else if (res.data.code === 403) {
    // token 验证过期，重新登录
    alert(res.data.msg);
    router.push("/login");
  } else {
    //针对于返回内容进行二次拆分
    // return res.data
    return res;
  }
});

export default http;
